package woniuxy.service.impl;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import woniuxy.dao.UserDao1;
import woniuxy.service.UserService;


import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @Author: 马宇航
 * @Todo: TODO
 * @DateTime: 01/19/0019 下午 3:08
 * @Component: 成都蜗牛学苑
 **/
@Service("userService")//自动把实现类注册成bean，这里改名为userService，在test里就能识别UserService userService=applicationContext.getBean("userService"
@Transactional//AOP，把事务通知，切入到了我们希望的切入点上。
public class UserServiceImpl implements UserService {
    @Autowired//通过注解进行自动装配，默认先使用的是byType进行装配
    // 好像不用写无参和有参
    UserDao1 userDao;

    @Override
    @Transactional
    public List<Map<String, String>> findAll() {
        Map<String, String> objectObjectHashMap = new HashMap<>();
        objectObjectHashMap.put("account","test");
        userDao.insert(objectObjectHashMap);
        //int i=1/0;事务回滚，
        // 不需要像二阶段手动开关session，sqlsession,commit,rollback,全是框架帮助实现，实际就是用动态代理实现事务的commit，rollback。
        // 这个异常的事务的通知是在applicationcontext的事务管理注册里写的
        //this.updateOne();
        return  userDao.findAll();
    }

    @Override
    @Transactional
    public void updateOne() {
        Map<String,String>stringStringMap=new HashMap<>();
        stringStringMap.put("account","updateName");
        //stringStringMap.put("id","21");
        stringStringMap.put("id","18");
        userDao.upDateOne(stringStringMap);
        int i=1/0;
    }
}